#include <algorithm>
#include <cmath>
#include <iostream>
#include <string>
using namespace std;
typedef unsigned long long ll;

typedef struct
{
    int a;
    char b;
    int b_;
} z;
z s[55];
int n = 0;
bool cmp1(z x, z y)
{
    return x.b_ < y.b_;
}
bool cmp2(z x, z y)
{
    return x.a > y.a;
}
void Sort(z *a, int x, int y)
{
    for (int i = x + 1; i < y; i++)
    {
        for (int j = i; j < y; j++)
        {
            if (a[i - 1].a < a[i].a)
            {
                z temp = a[i - 1];
                a[i - 1] = a[i];
                a[i] = temp;
            }
        }
    }
}
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        scanf("%d %c", &s[i].a, &s[i].b);
        switch (s[i].b)
        {
        case 'A':
            s[i].b_ = 1;
            break;
        case 'J':
            s[i].b_ = 11;
            break;
        case 'Q':
            s[i].b_ = 12;
            break;
        case 'K':
            s[i].b_ = 13;
            break;
        case 'X':
            s[i].b_ = 14;
            break;
        case 'Y':
            s[i].b_ = 15;
            break;
        default:
            s[i].b_ = s[i].b - 47;
        }
        /*
        if (s[i].b == 'A' || s[i].b == 'J' || s[i].b == 'Q' || s[i].b == 'K' || s[i].b == 'X' || s[i].b == 'Y')
        {
            s[i].b_ = s[i].b - 64;
        }
        else
        {
            s[i].b_ = s[i].b - 48;
        }
        */
    }
    sort(s, s + n, cmp1);

    int flag1 = 0, flag2 = 0;
    /*
    for (int i = 1; i < n; i++)
    {
        if (s[i].b_ == s[i - 1].b_)
        {
            flag2++;
        }
        else
        {
            sort(s + flag1 - 1, s + flag2 + 1, cmp2);
            flag2 = flag1 = i;
        }
    }
    */
    
    for (int i = 1; i < n; i++)
    {
        if (s[i].b_ != s[flag1].b_)
        {
            if (i != flag1)
            {
                sort(s + flag1, s + flag2 + 1, cmp2);
                flag1 = i;
                flag2 = i;
            }
        }
        else
        {
            flag2 = i;
        }
    }
    
    //cout << endl;
    for (int i = 0; i < n; i++)
    {
        cout << s[i].a << " " << s[i].b << endl;
    }
}